package com.banmao.demo

// --------------------------------------- list -------------------------------------
// 1. 增：在集合中新增元素
def list = [4, 5, 6, 7]

assert list instanceof java.util.List

list.add(1)

println list.size()


// 2. 增：集合与集合相加
def list2 = [1, 2, 3, 4]
list = list.plus(list2)
println list

// 3. 删：根据下标删除元素
list.remove(2)
println list

// 4. 删：删除指定元素
list.removeElement(100)
println list

// 5. 删：从 list 集合中移除 list3 集合中的元素
def list3 = [3, 4]
list.removeAll(list3)
println list

// 6. 从 list 中弹出第一个元素
println list.pop()
println list

// 7. 改
list.putAt(2, 10) // 等价于 list[2] = 10
println list
// 对空list也可以在非首位处添加元素，元素前面的元素都是 null
def empList = []
empList.putAt(3, 10)
println empList

// 8. 查
list.each {{
    print "item $it \t"
}}

println("\n\n\n")

// --------------------------------------- map -------------------------------------
// 键 key 可以不使用引号，可以使用单引号，也可以使用双引号
def map = [J: "Java", 'K': "Kotlin", "R": "Rust"]

// 1. 增
map.put("P", "Python")

println map

// 2. +/- 操作符重载
map2 = map - [K: "Kotlin"]
map2 = map2 - [P: "python"] // 值不正确不会删除
map3 = map + [K: "Kotlin2"] // 键相同会覆盖
println map2
println map3
